home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / system / ssas_13.zip / SSAS.13
Internet Message Format  |  1994-12-24  |  89KB

  1. From paj@uk.co.gec-mrc Wed Jul 27 16:20:26 1994
  2. From: paj@uk.co.gec-mrc (Paul Johnson)
  3. Newsgroups: comp.std.misc,comp.misc
  4. Subject: Software, System and Applications Standards
  5. Date: 15 Jul 94 11:48:07 GMT
  6. Organization: GEC-Marconi Research Centre, Great Baddow, UK
  7. X-Newsreader: TIN [version 1.2 PL1]
  8.  
  9.  
  10.          Software, System and Applications Standards
  11.          ===========================================
  12.  
  13.                by Paul Johnson.
  14.  
  15. Version: 1.3
  16. Date: 94/06/30
  17.  
  18. The copyright in this document is the property of GEC-Marconi Limited.
  19. This document may be copied freely, provided that no charge is made
  20. for the information.  All copies must include this copyright statement.
  21.  
  22. 0. Abstract
  23. ===========
  24.  
  25. This collection of notes on standards provides information about open
  26. systems computing standards that may be encountered.  The intention is
  27. to fill the gap caused by the general lack of accessible summary
  28. information on technological standards, which makes it difficult to
  29. find out what standards actually exist in any given area, or how
  30. widely they are actually used.
  31.  
  32. This report will be of particular use to those who are confronted with
  33. the need to comply with open systems standards, but who do not have
  34. the background knowledge that enables them to identify sources of
  35. information on these standards.  It also forms a useful overview of the
  36. open systems standards that are relevant in particular areas, and
  37. assesses the impact of these standards on GEC-Marconi businesses.
  38.  
  39. The report is mainly concerned with official standards promulgated by
  40. international organisations such as ISO and CCITT.  However it also
  41. includes a number of de-facto and proprietary standards where those
  42. have had significant market impact.
  43.  
  44. The UK government is legally required to specify open systems when
  45. inviting bids for information systems.  Other large customers may well
  46. follow suit.  The appropriate standards have been collected together
  47. under the name ``GOSIP''.  This is a ``meta-standard'' which specifies
  48. the options that may be used by government departments in various
  49. areas of information technology.  The idea is to ensure that
  50. applications used by government departments can work together.  The
  51. ISO and CCITT standards mandated by GOSIP are included in this
  52. document.
  53.  
  54. The Internet is a world-wide collection of academic and commercial
  55. networks which grew out of the DARPA-Net.  The Internet Activities
  56. Board (IAB) is charged with monitoring and co-ordinating the evolution
  57. of Internet protocols.  These protocols may be proposed by anyone
  58. through the issuing of a ``Request For Comment'' (RFC), which
  59. documents a proposed standard.  Some of these protocols have become
  60. world-wide standards and are described in this document.
  61.  
  62. 0.1. Changes Since Last Version
  63. -------------------------------
  64.  
  65. Ethernet information updated.
  66.  
  67. X Windows updated.
  68.  
  69. Minor correction to Unix history.
  70.  
  71. Correction to Internet protocols.
  72.  
  73.  
  74. 1. Introduction
  75. ===============
  76.  
  77. 1.1. Why it is on the Net
  78. -------------------------
  79.  
  80. This document was originally developed for use within GEC-Marconi.  As
  81. an experiment, we are making it available over the Net.  We hope to
  82. acheive the following goals (not necessarily in this order).
  83.  
  84. 1: Get feedback, improvements and updates from readers, thereby
  85.    increasing our competitiveness.
  86.  
  87. 2: Garner kudos and respect from the rest of the Net.
  88.  
  89. 3: Help other people.
  90.  
  91. 4: Some of the information in this document came from FAQs made
  92.    available through the generosity of people on the Net.  We would
  93.    like to reciprocate.
  94.  
  95. 1.2. Overview
  96. -------------
  97.  
  98. This collection of notes on standards provides information about open
  99. systems computing standards that may be encountered.  The intention is
  100. to fill the gap caused by the general lack of accessible summary
  101. information on technological standards, which makes it difficult to
  102. find out what standards actually exist in any given area, or how
  103. widely they are actually used.
  104.  
  105. The report is mainly concerned with official software standards
  106. promulgated by international organisations such as ISO and CCITT.
  107. However it also includes a number of de-facto and proprietary
  108. standards where those have had significant market impact, and includes
  109. some hardware standards which have significant impact on software
  110. design.
  111.  
  112. One of the issues in a report of this nature is its scope.  There are
  113. hundreds of open standards, and thousands of commercial ones.  Some of
  114. the commercial standards are declared ``open'' by the vendor (e.g
  115. SPARC and NFS) but are considered to be proprietary by other bodies
  116. (e.g the UK Government).  In some cases the common standard used by
  117. almost everyone is closed and proprietary, despite the existence of
  118. open standards that cover the same ground (e.g MS-DOS vs. Unix).
  119.  
  120. Covering every standard in existence would be an expensive and futile
  121. exercise.  This document tries to cover the standards that are most
  122. frequently referred to or used today.
  123.  
  124. The areas of technology covered in this document are:
  125.  
  126. Meta-Standards:
  127.    There are so many competing standards for so many areas of
  128.    technology that we need standards for which standards we use.
  129.    These are ``meta-standards''.
  130.  
  131. Data Specification Standards:
  132.    These are languages used for specifying data protocols and file
  133.    formats.
  134.  
  135. Hardware Standards:
  136.    These include standards that may include a software element (e.g
  137.    the Ethernet access protocol), but where this software would
  138.    usually be supplied on ROM or as a device driver.
  139.  
  140. Software Standards:
  141.    This covers operating systems and related areas.  Standards in this
  142.    section would usually be used directly by applications software.
  143.  
  144. Application Standards:
  145.    This covers communications protocols related to specific
  146.    application areas.
  147.  
  148. Data Exchange Formats:
  149.    These standards cover the storage and transfer of specific types of
  150.    data.
  151.  
  152. Document Formats:
  153.    This covers markup languages used to describe the format of
  154.    documents.
  155.  
  156. Internet Services:
  157.    This section could have been included in the ``Application
  158.    Standards'', but the Internet Activities Board have defined a group
  159.    of open standards which are completely unrelated to the ISO and
  160.    CCITT world, and this separation is reflected here.
  161.  
  162. 1.3. Structure
  163. --------------
  164.  
  165. Each of the standards in this document is described under the
  166. following headings:
  167.  
  168. Origin
  169.    The name of the organisation responsible for the standard, or the
  170.    name of the people who originally invented it.
  171.  
  172. Standard Status
  173.    The current version of the standard, along with a brief indication of
  174.    the extent to which it is actually used and its probable future.
  175.  
  176. Purpose
  177.    A short description of the problem which this standard is meant to
  178.    solve.
  179.  
  180. Outline
  181.    A technical overview of the standard, covering the major features and
  182.    highlighting any particular advantages or disadvantages.
  183.  
  184. References
  185.    Pointers to further information.  Official standards are not cited
  186.    here, since they appear in the Origin and Standard Status sections.
  187.  
  188.  
  189. 2. Meta-Standards
  190. =================
  191.  
  192. 2.1. OSI
  193. --------
  194.  
  195. Open Standards Interconnection.
  196.  
  197. -- Origin --
  198.  
  199. ISO/CCITT.
  200.  
  201. -- Standard Status --
  202.  
  203. ISO seven-layer reference model for OSI, issued 1978.  Standard ISO
  204. 7498.
  205.  
  206. OSI protocols are not generally used outside areas where their use is
  207. enforced by regulations (e.g. GOSIP).  OSI protocols are not tested
  208. widely before standardisation and are not based on existing practice.
  209. A number of important techniques such as RPC and stateless protocols
  210. were developed after the model was standardised.
  211.  
  212. -- Purpose --
  213.  
  214. The overall aim is to define the architecture for networking machines
  215. in order to provide universal homogeneous connectivity in a
  216. heterogeneous environment, regardless of distance, operating system,
  217. etc.  It seeks to do this by defining a generalised network
  218. architecture, as a layered model, such that functions are mapped to
  219. specific layers, in order that standards developed for each layer will
  220. be well defined as to function and to how they interface with the
  221. next-higher and/or next-lower layer.
  222.  
  223. -- Outline --
  224.  
  225. This is an abstract 7-layer network model, with the lower layers
  226. covering the physical (electrical, optical) connections, signalling
  227. conventions, error handling, routing from sender to receiver, etc.,
  228. and the upper layers providing high-level services for network filing
  229. functions, network services directory, network management etc.
  230.  
  231. The layering is important in that it decomposes an extremely
  232. complicated problem into a set of manageable subproblems (both from
  233. the point of view of thinking about it, and producing
  234. implementations), and it allows the layer interfaces to be defined on
  235. functional grounds, leaving each layer totally independent of the
  236. others (thus allowing independent modification of the layers).
  237.  
  238. OSI is therefore a conceptual model which defines the architecture for
  239. networking hardware and software.  A number of standards is possible
  240. at each of the seven layers, and OSI ``profiles'' will define particular
  241. sets of standards for particular functions, e.g.  MAP.
  242.  
  243. The seven layers are:
  244.  
  245.                +-------+--------------+
  246.                | LAYER | FUNCTION     |
  247.                +-------+--------------+
  248.                | 7     | Application  |
  249.                | 6     | Presentation |
  250.                | 5     | Session      |
  251.                | 4     | Transport    |
  252.                | 3     | Network      |
  253.                | 2     | Data Link    |
  254.                | 1     | Physical     |
  255.                +----------------------+
  256.  
  257. Very briefly, the functions of these layers are as follows.
  258.  
  259. 1: The *Physical Layer* provides the physical means of communication -
  260.    the wires, modems, connectors, signalling conventions - between two
  261.    nodes.
  262.  
  263. 2: The *Data Link Layer*, using the physical layer, furnishes and
  264.    manages the communication link between any 2 nodes on the physical
  265.    medium.  The IEEE 802 specification (to which Ethernet belongs)
  266.    divides this layer into 2 sub-layers:
  267.  
  268.    a: Logical Link Control (LLC), responsible for transfer,
  269.       sequencing, error checking and addressing, and
  270.  
  271.    b: Medium Access Control (MAC), responsible for managing access to
  272.       the physical medium.
  273.    
  274. 3: The *Network Layer*, using the data link layer, provides routing
  275.    from point to point within a network of arbitrary complexity.
  276.  
  277. 4: The *Transport Layer*, using the network layer, provides a
  278.    network-wide, error-free data transfer service.  It manages network
  279.    access, message segmentation, error correction, and control over
  280.    data exchanges.
  281.  
  282. 5: The *Session Layer*, is the first of the three upper
  283.    application-oriented layers.  Using the transport layer, the
  284.    session layer sets up and manages the dialogue between application
  285.    processes to ensure structured and synchronised exchange at
  286.    transport layer level.
  287.  
  288. 6: The *Presentation Layer* addresses the problem of differences in
  289.    data encoding formats between nodes, using the notions of an
  290.    abstract syntax which defines a neutral (machine independent)
  291.    notation for the formal description of data types and values, and a
  292.    transfer syntax which expresses the data in abstract syntax form in
  293.    a neutral bit-level format for transmission.  The syntax used is
  294.    data-dependent, so the presentation layer selects the syntax
  295.    according to the data type, and handles the translation to and from
  296.    both abstract and transfer syntax.
  297.  
  298. 7: The *Application Layer* is the interface to the user's application
  299.    program.  There is therefore no single standard, but a set of
  300.    procedures, one for each application category --- e.g.  for file
  301.    transfer and management, for directory services, for network
  302.    management, for message handling, and for remote terminal access,
  303.    etc.
  304.  
  305. Note that each layer in one node appears to speak directly to its peer
  306. in another node - the lower layers are invisible wherever you look
  307. from, despite the fact that all data actually goes via layer 1.  Some
  308. abbreviated protocol stacks are also in use, where two or more layers
  309. are combined for efficiency.
  310.  
  311. A list of all OSI related standards and their current status is
  312. printed twice a year in the ACM SIGCOMM journal Computer Communication
  313. Review.
  314.  
  315. 2.2. GOSIP
  316. ----------
  317.  
  318. The UK Government Open Standards Interconnection Profile.
  319.  
  320. -- Origin --
  321.  
  322. The UK Government.  Other countries have defined their own
  323. equivalents, so bids for foreign contracts should consult the
  324. customer's local standards.
  325.  
  326. The US standard is also called GOSIP.  The following refers only to
  327. the UK GOSIP.
  328.  
  329. -- Standard Status --
  330.  
  331. "GOSIP: Government Open Systems Interconnection Profile Version 4",
  332. issued in 1991.  Available in two versions: "Supplier Set" and
  333. "Purchaser Set".  Updates for 1992 and 1993 are also available.  These
  334. are also available as "Electronic GOSIP", presumably the same
  335. documents in a machine-readable format.
  336.  
  337. A small booklet "Essential Guide to GOSIP" is available for free.
  338. This is the place to start.
  339.  
  340. All this information is available from CCTA Publications.  Telephone
  341. +44 071 217 3331, and ask for the "Essential Guide to GOSIP" and the
  342. "CCTA Publications List".
  343.  
  344. -- Purpose --
  345.  
  346. >From "Essential Guide to GOSIP":
  347.  
  348. * Simplify planning and procurement of OSI-based communications
  349.   systems.
  350.  
  351. * Define appropriate options within the base OSI standards.
  352.  
  353. * Facilitate precise specification of the requirements of an
  354.   administrative user community.
  355.  
  356. * Ensure that applications can interwork effectively between
  357.   independently purchased systems.
  358.  
  359. * Provide a basis for controlling change.
  360.  
  361. * Reduce the risks associated with future procurements.
  362.  
  363. * Specify the OSI implementation requirements of government bodies as
  364.   a guide to product developers.
  365.  
  366. * Stimulate the development of conformance and interoperability
  367.   testing.
  368.  
  369. -- Outline --
  370.  
  371. GOSIP is divided into a number of sections.  These sections are called
  372. ``subprofiles'' and represent building blocks that can be selected to
  373. meet particular system requirements.  GOSIP consists of four
  374. subprofile sets, each of which contains a number of subprofiles, each
  375. of which is made up of one or more standards.  Customers should
  376. specify which particular subprofiles they require the product to
  377. conform to.
  378.  
  379. The four subprofile sets are:
  380.  
  381. GOSIP-S:
  382.    The supporting services.  Deals with communications management and
  383.    ancillary issues.  Covers naming and addressing, security and OSI
  384.    management.
  385.  
  386. GOSIP-F:
  387.    The format of information.  Deals with the syntax for data or
  388.    document interchange, covers structured processable data and
  389.    document formats (EDI and ODA) and character repertoires.
  390.  
  391. GOSIP-A
  392.    The application services.  Deals with the top three OSI layers.
  393.    Covers X.400 messaging, X.500 directory services, FTAM file
  394.    services and terminal services.
  395.  
  396. GOSIP-T:
  397.  
  398.    The underlying transport infrastructure.  Deals with the lower four
  399.    layers of the OSI model, covers LANs, WANs and relaying systems.
  400.  
  401. The text of the US GOSIP is available by FTP from Imperial College
  402. <src.doc.ic.ac.uk>.
  403.  
  404. 2.3. IAB Official Protocol Standards
  405. ------------------------------------
  406.  
  407. IAB stands for the Internet Activities Board.
  408.  
  409. -- Origin --
  410.  
  411. Internet Activities Board.  The Internet has grown from the initial
  412. DARPA-Net to become a world wide network used by 100,000 companies and
  413. universities.  This is a very rough estimate.  The Internet appears to
  414. be growing exponentially at about 10% per month.
  415.  
  416. -- Standard Status --
  417.  
  418. Updated regularly as new standards are adopted.  At the time of
  419. writing the most recent version in the Imperial College repository was
  420. RFC 1250, issued on 1st August 1991.  This is probably out of date by
  421. now.  See your local FTP archive for the latest information.
  422.  
  423. -- Purpose --
  424.  
  425. A list of the standards adopted by the IAB for use on the Internet.
  426.  
  427. -- Outline --
  428.  
  429. Most standards organisations work by forming a committee to create a
  430. standard from scratch.  Committee members are expected to be experts
  431. in their field and to release drafts for comment.  The IAB takes a
  432. very different view.  In their process, anyone can invent a protocol.
  433. They encourage these inventors to document their protocols as a
  434. ``Request For Comment'', or RFC.  This is done even when there is no
  435. intention that the protocol be adopted as a standard.  Such protocols
  436. are termed ``experimental''.
  437.  
  438. Protocols that are intended to become standards are first designated
  439. ``proposed''.  They are then implemented and tested by several groups,
  440. and a revised RFC may be issued as a result.  Once the protocol has
  441. become stable it may become a ``draft standard'' and will normally
  442. become an IAB standard about 6 months later.
  443.  
  444. Anyone can submit a document for publication as an RFC.  It will then
  445. be assigned a number and ``published'' (made available on public FTP
  446. repositories).  Once this has done the RFC can never be revised.  If
  447. changes become necessary then a new RFC number is issued and the old
  448. one is tagged as obsolete.  Not every RFC is intended as a standard.
  449. Other material covered includes documentation conventions, comments on
  450. past RFCs and technical notes on various aspects of the Internet.
  451.  
  452. As well as the progression from experimental to standard protocols,
  453. the IAB also designates protocols as ``Required'', ``Recommended'',
  454. ``Elective'' and ``Not Recommended''.
  455.  
  456. RFC 1250 "IAB Official Protocol Standards" defines this
  457. standardisation process and also lists the current state of all RFCs
  458. that have not been superseded.  RFC 1250 was released in August 1991,
  459. and will probably be superseded by now.  Consult a current index for the
  460. latest version.
  461.  
  462. The US Department of Defence has adopted a number of IAB standards for
  463. its own use.  These are:
  464.  
  465.    +-------------------------------+--------+------+--------------+
  466.    | Standard                      | Abbrev | RFC  | DoD Number   |
  467.    +-------------------------------+--------+------+--------------+
  468.    | Internet Protocol             | IP     | 791  | MIL-STD-1777 |
  469.    | Transmission Control Protocol | TCP    | 793  | MIL-STD-1778 |
  470.    | File Transfer Protocol        | FTP    | 765  | MIL-STD-1780 |
  471.    | Simple Mail Transfer Protocol | SMTP   | 821  | MIL-STD-1781 |
  472.    | Telnet Protocol and Options   | TELNET | 854  | MIL-STD-1782 |
  473.    +-------------------------------+--------+------+--------------+
  474.  
  475. Note that these MIL-STD are now somewhat out of date.  The Gateway
  476. Requirements (RFC-1009) and Host Requirements (RFC-1122, RFC-1123)
  477. take precedence over both earlier RFCs and the MIL-STDs.
  478.  
  479. All current RFCs are available on-line from the Network Information
  480. Centre (NIC) repository in the USA.  For details, send email to 
  481. <rfc-info@ISI.EDU> with the message body ``help: ways_to_get_rfcs''.
  482.  
  483. The NIC repository is mirrored at Imperial College, but this may be
  484. slightly out of date.
  485.  
  486. -- Update --
  487.  
  488. Since this report was completed, the IAB have signed a memorandum of
  489. agreement with ISO, under which the Internet will
  490. migrate towards X.400 addresses.
  491.  
  492. 3. Data Specification Standards
  493. ===============================
  494.  
  495. 3.1. ASN.1
  496. ----------
  497.  
  498. -- Origin --
  499.  
  500. ISO.
  501.  
  502. -- Standard Status --
  503.  
  504. Full ISO standard.
  505.  
  506. ISO 8824 defines symbolic data description technique.
  507.  
  508. ISO 8825 defines rules for encoding such a data description (Basic
  509. Encoding Rules, or BER).
  510.  
  511.  
  512. -- Purpose --
  513.  
  514. To define a symbolic human-readable data description technique, which
  515. defines the Type, Meaning and Structure of data, and a set of rules
  516. for encoding such a data description usually for transmission across
  517. an OSI network.  Note that the symbolic data description defines
  518. Syntax and Grammar, but not Usage, so ASN.1 can be used in many
  519. applications.
  520.  
  521.  
  522. -- Outline --
  523.  
  524. The basis of ASN.1 is a set of Descriptive Statements which define its
  525. use in any particular application.  The Type and Meaning of data is
  526. identified by tagging each data item with an Identifier, while the
  527. Structure is conveyed by the manner and order in which it is sent.
  528. The Descriptive Statements (which are themselves symbolic) define how
  529. the Identifiers and Structure are to be interpreted.  Each application
  530. that specifies use of ASN.1 has to specify its own set of Descriptive
  531. Statements - standards that use it include the Protocol Data Unit
  532. encoding in various OSI protocols, such as FTAM (File Transfer, Access
  533. and Management), MMS (Manufacturing Message Specification), and the
  534. CCITT X.400 MHS (Message Handling System, CCITT recommendation X.409).
  535.  
  536. -- References --
  537.  
  538. ComCentre Communique, April 1989.
  539.  
  540. Further information in "Reading Abstract Syntax Notation One" by
  541. Ralph Purdue of ComCentre, available from ComCentre.
  542.  
  543. 3.2. XDR (eXternal Data Representation)
  544. ---------------------------------------
  545.  
  546. -- Origin --
  547.  
  548. SUN Microsystems Inc.
  549.  
  550.  
  551. -- Standard Status --
  552.  
  553. De-facto commercial standard, specification in the public domain.
  554. Available as a software library to be built into application programs
  555. (e.g.  from GEC software).
  556.  
  557. -- Purpose --
  558.  
  559. While ASCII files are portable, most binary files are not.  XDR
  560. defines a self-descriptive format for binary files so that binary
  561. files encoded with XDR can be machine-independent.
  562.  
  563. Data portability is of increasing concern, and pressure to  provide
  564. portability  is  likely  to increase.  The choices for binary files
  565. are to adopt XDR, or to add knowledge of  the  source  into  binary
  566. files   and   translate   appropriately   on  receipt  (within  the
  567. application).  The latter is  more  efficient,  but  is  of  course
  568. limited to the supported application/machines.
  569.  
  570. -- Outline --
  571.  
  572. XDR specifies a self-descriptive format (keyword+value) for binary
  573. files, so that such files can be machine-architecture independent.  To
  574. make use of the XDR standard, programs that write and read binary
  575. files must be modified so that they write and read XDR formatted data.
  576. This can be done simply by implementing the specification in the
  577. application program, or by incorporating a pre-built library of
  578. XDR-conformant utilities in the application.
  579.  
  580. -- Limitations --
  581.  
  582. Since XDR files contain self-descriptive data they will be larger than
  583. the corresponding non-portable binary files.  This size penalty will
  584. be content dependent.
  585.  
  586. XDR files will take longer to read and write than their non-portable
  587. equivalents, as a result of the extra processing and the larger file
  588. sizes.  Note also that transmission of some binary files is not
  589. trivial (in particular stream files from C).
  590.  
  591. -- References --
  592.  
  593. "The SUN Network File System: Design, Implementation and Experience"
  594. by R. Sandberg.  SUN document.
  595.  
  596. 4. Hardware Standards
  597. =====================
  598.  
  599. 4.1. SPARC
  600. ----------
  601.  
  602. -- Origin --
  603.  
  604. SUN Microsystems Inc.
  605.  
  606. -- Standard Status --
  607.  
  608. De-facto standard, specification in public domain.  Manufacturers
  609. include SUN and Hitachi.
  610.  
  611. -- Purpose --
  612.  
  613. To provide an industry standard RISC processor architecture.  SPARC
  614. stands for Scalable Processor ARChitecture.  The idea is that
  615. designers can make a range of chips which can all run the same
  616. software.  The number of on-chip registers may change, but the
  617. instruction set and register addresses used by programs will always
  618. stay the same.
  619.  
  620. -- Outline --
  621.  
  622. RISC architectures attempt to maximise the effective speed of a
  623. computer.  In a conventional CPU, much of the instruction set is used
  624. only rarely.  These instructions provide little performance gain
  625. because of their rare use, but they cause a performance loss because
  626. the extra decoding hardware needed for these instructions slows down
  627. the machine for all instructions.  RISC designers analyse the tradeoff
  628. between the gain when an instruction is used and the loss when it is
  629. not used.  Hence they can make a logical decision about each
  630. instruction.
  631.  
  632. The SPARC architecture introduces a rolling set of register windows.
  633. Each function has 8 ``local'' registers, 8 ``in'' registers and 8
  634. ``out'' registers.  When a function call is made, the new function
  635. gets a new set of ``local'' and ``out'' registers and the old ``out''
  636. registers become the new ``in'' registers.  In this way function
  637. arguments can be passed through the ``in'' and ``out'' registers
  638. without the need to transfer them via a stack frame.  In addition the
  639. chip also has 8 ``global'' registers which can always be accessed.
  640.  
  641. A SPARC chip may have between 6 and 32 register windows, giving
  642. between 104 and 520 on-chip registers.  Once all the registers have
  643. filled up, the CPU has to start saving windows on the stack.
  644.  
  645. The SUN manual "A RISC Tutorial" which describes the SPARC
  646. architecture also mentions ``tagged arithmetic'', but does not explain
  647. what this is or how it contributes to improved performance.  The
  648. instruction set includes floating point instructions, and current
  649. implementations include on-chip FPUs.
  650.  
  651. SPARC processors are mainly used in SUN workstations and their
  652. emulators.  Their efficiency and future-proof design may also make
  653. them suitable choices for embedded applications, particularly those
  654. where equipment must be maintained and upgraded for long periods in
  655. the future.  The SPARC architecture does not include a definition of
  656. the memory management unit, so this makes it more suitable for
  657. embedded applications than devices such as the 80486, where an MMU is
  658. included on-chip.
  659.  
  660. "A RISC Tutorial", Sun Microsystems, Part Number 800-1795-10, Revision
  661. A, May 1988.
  662.  
  663. 4.2. IBM PC and 80x86 CPUs
  664. --------------------------
  665.  
  666. -- Origin --
  667.  
  668. IBM and Intel.
  669.  
  670. -- Standard Status --
  671.  
  672. De-facto industry standard.  The 80x86 chips are now made by Intel and
  673. AMD, and ``clone'' PCs and accessories are made by hundreds of
  674. different manufacturers.  Neither of these are open standards; in fact
  675. both Intel and IBM have tried to keep them closed.  These attempts
  676. have been largely unsuccessful, and this has led in large part to the
  677. downfall of IBM.
  678.  
  679. -- Purpose --
  680.  
  681. Originally, to make money for IBM and Intel.  Neither company expected
  682. these products to become important standards.
  683.  
  684. -- Outline --
  685.  
  686. Technically these are two different standards; one is a CPU chip, and
  687. the other is a computer architecture that uses it.  In practice 80x86
  688. chips are almost never used outside the PC architecture, and so they
  689. will be considered together.  The term 80x86 is used to cover the
  690. following devices: 8086, 80186, 80286, 80386, 80486 and Pentium
  691. (sometimes called the '586: Intel gave it a name after an American
  692. court ruled that numbers cannot be trade-marked).  All these chips
  693. share a common architecture and are upwardly compatible from left to
  694. right.  They are also upwardly compatible with the 8 bit 8088 and Z80
  695. CPUs.
  696.  
  697. Of these chips, the most commonly used outside IBM PCs is the 80186.
  698. This is effectively the same as an 8086 except for a small amount of
  699. on-chip RAM and some IO devices.  It is intended for embedded
  700. applications.
  701.  
  702. The 80x86 range is notable for two things:
  703.  
  704. 1: Its non-orthogonal register set.  Most CPUs provide a large number
  705.    of registers which can all be used in the same way.  On the 68000
  706.    an add instruction can apply to any pair of the 8 data registers,
  707.    or to a data register and a memory location.  Similarly, any of the
  708.    8 address registers can be used to index data.  The 80x86 does not
  709.    provide this.  Instructions are tied to particular registers.  This
  710.    creates problems for optimising compilers.
  711.  
  712.  
  713. 2: The segmented memory architecture, which was originally invented to
  714.    allow upward compatibility with the 8088 and Z80.  The original
  715.    8086 had a 20 bit address bus, giving 1Mb of addressable memory
  716.    (this was thought to be generous given the expected lifetime of the
  717.    architecture).  Addresses are all 16 bit, with the extra 4 bits
  718.    coming from ``segment registers''.  These are also 16 bit
  719.    registers, but the bits are shifted 4 bits to the left before being
  720.    added to the address computed by the rest of the CPU.  There are
  721.    separate segment registers for code, stack and data.  This causes
  722.    problems for C compilers because they have to provide the
  723.    programmer with a flat address space for pointer arithmetic and
  724.    comparison.  Further problems have been caused in the later chips
  725.    by the expansion to a full 32 bit address bus (requiring an extra
  726.    12 bits of address to come from somewhere).
  727.  
  728. The IBM PC was originally produced by a small team within IBM who
  729. believed that the company should try to cash in on the growth in the
  730. microcomputer market.  This was not expected to be more than a
  731. sideline to IBM's main business, and so the development was done on a
  732. small budget.  This led the development team to buy in their CPU and
  733. operating system rather than develop them from scratch.  This allowed
  734. competitors to build their own ``compatible'' PC clones.  Had IBM
  735. retained control of either of these two items then the clone market
  736. would never have developed and the commercial history of computers in
  737. the 1980s would have been very different.
  738.  
  739. The 80186 CPU is useful in embedded applications, although it does not
  740. provide the power of more modern chips.  The rest of the range are
  741. normally encountered in IBM PC motherboards.  These can either be used
  742. in stand-alone PCs or embedded control applications.  The wide
  743. availability of these boards, as well as IO devices and development
  744. software, makes this a good choice for many projects.  However
  745. consideration should be given to the extra programming problems caused
  746. by the 80x86 and IBM PC architectures.  A small saving on hardware may
  747. be swamped by the increase in coding time.
  748.  
  749. See also the section on MS-DOS and Windows.
  750.  
  751. 4.3. Ethernet
  752. -------------
  753.  
  754. -- Origin --
  755.  
  756. In 1976, Metcalf and Boggs of Xerox PARC published the first
  757. description of Ethernet.  This was later codified into IEEE 802.3,
  758. which defines the Ethernet still in use today.
  759.  
  760. -- Standard Status --
  761.  
  762. The standard is now well established and in wide use.  IEEE 802.3
  763. defines speeds up to 20 Mbit/sec, but the de-facto standard is
  764. 10Mbit/sec.  Ethernet cards are available for IBM PCs.  Unix
  765. workstations are usually fitted with Ethernet interfaces as standard.
  766. A number of packet switches exist for routing data between different
  767. subnets.  Ethernet is starting to look a little slow, especially for
  768. large networks.
  769.  
  770. -- Purpose --
  771.  
  772. A LAN for office and light industrial use.
  773.  
  774. -- Outline --
  775.  
  776. Ethernet uses Carrier Sense Multiple Access with Collision Detection
  777. (abbreviated CSMA/CD).  All nodes are connected to a common co-axial
  778. cable.  When a station wishes to transmit, it first listens to see if
  779. any other station is transmitting.  If it detects no other station
  780. then it goes ahead, otherwise it waits (this is the CSMA bit of the
  781. name).  If two stations start transmitting simultaneously then
  782. hardware in both nodes detects this and stops the transmission.  The
  783. two nodes then wait for a random interval before retrying (this is the
  784. CD bit of the name).
  785.  
  786. Although data is transmitted over the Ethernet at 10Mbit/sec,
  787. theoretical studies predict that actual utilisation can only be about
  788. 30% of this.  However according to a report from DEC [1], in practice
  789. utilisation can be as high as 95%. Above this the number of collisions
  790. rises rapidly and the entire network grinds to a halt.  Since Ethernet
  791. is a bus-based LAN, utilisation is roughly proportional to the number
  792. of nodes.  The usual solution to this problem is to split the LAN into
  793. a number of subnets, and use intelligent routers to switch messages
  794. >from one subnet to another.  High speed fibre optic links are often
  795. used to transmit between subnets.
  796.  
  797. In the OSI architecture, Ethernet covers layer 1 (physical) and the
  798. part of layer 2 (data link).
  799.  
  800. Ethernet is ubiquitous and cheap.  However it is not suitable for
  801. real-time communication because of the unpredictable transmission
  802. delay.
  803.  
  804. Since every item of data is transmitted to every node, a single
  805. dishonest node can intercept all transmitted data and may also be able
  806. to masquerade as another node.  These problems can be overcome by
  807. adding cryptographic protocols on top of the Ethernet standard, at
  808. some cost in performance.  This may be important in some secure
  809. applications.
  810.  
  811. [1] Dave Boggs, Jeff Mogul and Chris Kent.  DEC Western Research Lab
  812.     tech report 88-4 "Measured Capacity of an Ethernet: Myths and
  813.     Reality".  This report is available as a postscript file by
  814.     anonymous ftp from gatekeeper.dec.com.
  815.  
  816.  
  817. 5. Software Standards
  818. =====================
  819.  
  820. 5.1. Unix
  821. ---------
  822.  
  823. -- Origin --
  824.  
  825. The original version of Unix was written on a spare PDP-7 by Ken
  826. Thompson to support a video game.  Since then it has had a long and
  827. complicated history.  The story includes startup companies that became
  828. industry giants, university programmers who rewrote the whole thing
  829. for fun, several incompatible versions, and a number of standard
  830. wars.
  831.  
  832. -- Standard Status --
  833.  
  834. The major Unix standard is POSIX (Portable Operating System Interface
  835. X), as defined in the IEEE 1003 family of standards.  This won the
  836. standard war of the late 1980s and is now being adopted industry-wide.
  837.  
  838. The Unix trademark is now (as of 14 October 1993) owned by X/Open, the
  839. Unix vendor club.
  840.  
  841. Unix is now the dominant vendor-independent operating system.  As a
  842. result it is frequently specified for large networked systems.
  843.  
  844. -- Purpose --
  845.  
  846. POSIX is an attempt to provide a single standard for all
  847. implementations of Unix.  However it is not tied to Unix.  A vendor of
  848. a different operating system could provide the set of shells and
  849. utilities specified in 1003.2 and then claim to be POSIX-compliant.
  850.  
  851. -- Outline --
  852.  
  853. Some of the information in this section is taken from the
  854. comp.unix.questions FAQ maintained by Ted Timar
  855. <tmatimar@empress.com>.
  856.  
  857. POSIX standard numbers are of the form 1003.x.  The following values
  858. of x have been allocated, although not all of these documents have
  859. been released:
  860.  
  861. 0: Open Systems Environment
  862. 1: System Application Program Interface (C Language system calls)
  863. 2: Shell and Utilities
  864. 3: Test Methods
  865. 4: Real-Time Systems Interfaces
  866. 5: Ada Language Binding
  867. 6: Security
  868. 7: System administration (including printing)
  869. 8: Transparent File Access
  870. 9: FORTRAN Language Binding
  871. 10: Super computing
  872. 12: Protocol-independent interfaces
  873. 13: Real-Time Profiles
  874. 15: Supercomputing batch interfaces
  875. 16: C-language bindings
  876. 17: Directory services
  877. 19: FORTRAN 90 Language Binding
  878.  
  879. As always, vendors are caught between the need to demonstrate that
  880. their products are standard and that they are better than anyone else.
  881. This leads to various non-standard extensions.  However this should
  882. not be too great a problem since vendors usually indicate which areas
  883. of their product are not part of POSIX.
  884.  
  885. A claim that a product is ``POSIX conformant'' does not imply that
  886. everything in the IEEE 1003.x document set is supported.  However a
  887. vendor must produce a POSIX conformance document.  This can be
  888. inspected to see if the product conforms in the areas of interest.
  889.  
  890. X/Open (a vendor consortium) have produced a series of Portability
  891. Guides known as the XPG series.  They include:
  892.  
  893. XPG2:
  894.    This was published in 1987.  It has a strong System V influence.
  895.    The volumes are:
  896.  
  897.    1: Commands and Utilities
  898.    2: System Calls and Libraries
  899.    3: Terminal Interfaces, IPC, Internationalization
  900.    4: Programming Languages (C & COBOL)
  901.    5: Data Management (ISAM & SQL)
  902.  
  903. XPG3 and XPG4 were published in 1989 and 1992 respectively.  There
  904. were huge changes between XPG2 and XPG3 to align with POSIX.1 and to
  905. align partially with the C Standard.  Many of the XPG2 interfaces
  906. and headers were withdrawn.  There were equally drastic changes
  907. between XPG3 and XPG4, including alignment with POSIX.2 and FIPS
  908. 151-2, full alignment with the C Standard, and the addition of wide
  909. character interfaces.  Therefore anyone working to these standards
  910. should ensure that they have the latest version, and that anything
  911. purchased as conforming to these standards also conforms to the latest
  912. version.
  913.  
  914.  
  915. 5.2. X Windows
  916. --------------
  917.  
  918. -- Origin --
  919.  
  920. Massachusetts Institute of Technology.
  921.  
  922. -- Standard Status --
  923.  
  924. The standard is defined by a ``sample implementation'' from MIT.  In
  925. fact this is the commonest implementation in use because MIT
  926. distributes the source code for free.
  927.  
  928. X Windows has now been adopted as part of POSIX.
  929.  
  930. Various vendors have modified the sample implementation and
  931. distributed the results without source code, but no-one seems to have
  932. rewritten it.  Such an effort is unlikely.  It would probably cost
  933. several million pounds to develop and the resulting product would have
  934. to compete with the MIT sample implementation.
  935.  
  936. The current version is known as X11 revision 6, or just X11R6.  New
  937. revisions are released by MIT every year or two.  All revisions are
  938. upwardly compatible.  It seems unlikely that there will be an X12 in
  939. the near future.  The release of vendor-modified versions of X always
  940. lags behind the MIT release.
  941.  
  942. Versions of the X Windows server are available for PCs, and X Windows
  943. is available on various PC versions of Unix.
  944.  
  945. -- Purpose --
  946.  
  947. To provide a standard GUI for networked systems, especially Unix.  The
  948. original intention was merely to manage the ``real-estate'' of the
  949. screen.  However the basic API (known as Xlib) has been supplemented
  950. by a range of GUI libraries which are generally considered to be part
  951. of X Windows.
  952.  
  953. X Windows works transparently over a network.  A user can run a
  954. program on one machine and interact with it on another.  A single
  955. application can control windows on several machines.
  956.  
  957. -- Outline --
  958.  
  959. X11 is available under Unix, Ultrix and VAX/VMS.  It is presented to
  960. application programmers through Xlib, a C procedure library.  The
  961. network communication is hidden underneath Xlib, and other X libraries
  962. are built on top of this.
  963.  
  964. X11 is based on a client-server model.  For each physical display
  965. there is a controlling server.  Client processes communicate with the
  966. servers via a reliable duplex byte stream with a block stream protocol
  967. layered on top.  Where client and server are on the same machine the
  968. stream is based on a local IPC mechanism, otherwise a network
  969. connection is used.  Client-server connections can be one-to-one,
  970. one-to-many, many-to-one, or many-to-many.
  971.  
  972. X Windows supports one or more physical screens, with the windows
  973. arranged in a strict hierarchy.  Each screen has a root window
  974. covering the display screen, covered partially or completely by child
  975. windows, which in turn may have their own children.  There is usually
  976. at least one window per application program, and an application can
  977. create a tree of arbitrary depth on each screen.  A child may extend
  978. beyond its parent window, but output to the child is clipped to the
  979. parent window boundaries.  At each level in the hierarchy, one window
  980. is deemed to be dominant (i.e.  obscures the others).
  981.  
  982. Each window has a border (may be zero pixels wide), and can have a
  983. background colour (if it does not it will be transparent i.e.  let
  984. other windows behind it be seen).
  985.  
  986. X does not take responsibility for the contents of windows : if a
  987. window is obscured and then exposed, X will ask the application to
  988. repaint part or all of the window.  X does, however, provide for
  989. storage of graphic objects called pixmaps (bitmaps if only using 1
  990. pixel plane) at the workstation.  The application can also elect to
  991. have the X server store obscured window areas as pixmaps so that it
  992. can repaint them itself.
  993.  
  994. X also fails to define any system for the user to manage windows.
  995. Primitive functions for moving and resizing windows are provided by
  996. Xlib, but the user needs an application called a ``window manager'' to
  997. control these things.  As far as X is concerned the window manager is
  998. just another application and has no special status or privilege.
  999. Users can therefore pick their own window manager according to taste.
  1000. A range of such programs are distributed with X.
  1001.  
  1002. Many X functions return an ID which allows the application to refer
  1003. to  objects  stored  on the X server.  These can be of type Window,
  1004. Font, Pixmap,  Bitmap,  Cursor,  or  Graphic  Context.   Fonts  and
  1005. cursors are normally shared automatically between applications.
  1006. Most calls to Xlib operate asynchronously, but synchronisation  can
  1007. be forced by calls to XSync (e.g.  to wait for a return value).
  1008.  
  1009. The X Toolkit ``Xt'' is layered on Xlib.  It acts as a basic GUI
  1010. library, defining simple buttons and sliders and providing a standard
  1011. protocol for applications to communicate with the window manager.  GUI
  1012. objects such as buttons and sliders are known as ``widgets'' in X
  1013. terminology (short for ``window gadgets'').  Xt widgets are defined in
  1014. a strongly object-oriented way with function pointers used to provide
  1015. a common interface to the various widgets.  The result is flexible but
  1016. complex.  Application programmers are shielded from this complexity
  1017. but programmers writing new widgets are not.
  1018.  
  1019. A number of widget libraries have been produced by extending Xt.
  1020. These include the Athena widgets, Open Look and Motif.  Athena is
  1021. included in the MIT distribution, but does not appear to be commonly
  1022. used.  The standards war between Open Look and Motif has now been won
  1023. by Motif.  Both of these are commercially available libraries.
  1024.  
  1025. At one point SUN made a bid to corner the standard window system
  1026. market with NeWS (Network Extensible Window System), but SUN now
  1027. supports both NeWS and X.  NeWS has lost the standards war and seems
  1028. destined to fade into obscurity.
  1029.  
  1030. A further level of abstraction can be layered on top of Xt: the UIMS
  1031. (User Interface Management System).  This allows the user interface to
  1032. be separated from the application by providing high-level extensible
  1033. tools for building user interfaces, with obvious advantages for
  1034. portability.
  1035.  
  1036. While X itself is ``value-free'', i.e it does not enforce a particular
  1037. style or look-and-feel on user interfaces, the particular tool used
  1038. will tend to result in stylistic similarities in user interfaces
  1039. developed with it.  Most UIMSs are tied to one particular GUI library.
  1040.  
  1041. The favourite competitor for the de-facto GUI standard currently seems
  1042. to be the Open Software Foundation library ``Motif''
  1043.  
  1044. Some vendors have released ``X terminals''.  These are small
  1045. computers, usually with big screens and an Ethernet interface, that
  1046. are designed to run the X server.  They often contain special graphics
  1047. hardware and an X Server modified to take advantage of this.  X
  1048. terminals can provide a cost effective alternative to Unix
  1049. workstations, but they cause a serious increase in network traffic.
  1050.  
  1051. Increasing numbers of Unix applications are being released with X
  1052. Windows support.  Some will not run on anything else.
  1053.  
  1054. GOSIP specifies ``Virtual Terminal'' support (ISO 9040, 9041).  This
  1055. provides form-based data entry facilities.  It is not a substitute for
  1056. X Windows in more complicated activities.
  1057.  
  1058. 5.3. Virtual Terminal (ISO 9040, 9041)
  1059. --------------------------------------
  1060.  
  1061. -- Origin --
  1062.  
  1063. ISO
  1064.  
  1065. -- Standard Status --
  1066.  
  1067. ISO standards 9040, 9041.
  1068.  
  1069. -- Purpose --
  1070.  
  1071. Standard for interactive operations over a network.
  1072.  
  1073. -- Outline --
  1074.  
  1075. >From the <comp.protocols.iso> FAQ:
  1076.  
  1077.    The Virtual Terminal (VT) service and protocol specified in ISO
  1078.    9040 and ISO 9041 allow a host application to control a terminal
  1079.    with screen and keyboard and similar devices like printers. In
  1080.    addition, not only application-terminal, but also the less common
  1081.    application-application and terminal-terminal communication is
  1082.    supported. Today, only the Basic Class VT, which covers
  1083.    character-oriented terminals has been specified.  This service is
  1084.    comparable to DoD Telnet and the old CCITT X.3/X.28/X.29 PAD
  1085.    protocol, but much more powerful. It also includes control of
  1086.    cursor movement, colors, character sets and attributes, access
  1087.    rights, synchronization, multiple pages, facility negotation,
  1088.    etc. This means that the huge number of classic terminal type
  1089.    definitions (e.g. in UNIX termcap or terminfo) are unnecessary at
  1090.    each host in the net, as the VT protocol includes the corresponding
  1091.    commands for one abstract virtual terminal that only have to be
  1092.    converted by the local implementation to the actual terminal
  1093.    control sequences.  Consequently, the use of VT means not every
  1094.    host needs to know every type of terminal.
  1095.  
  1096.    As with most ISO standards that require general consensus amongst
  1097.    participating members, the OSI VT has many optional capabilities,
  1098.    two modes of operation and an almost infinite number of
  1099.    implementation- specific options. Profiles may help in reducing the
  1100.    optionality present (e.g., there exists a Telnet profile for VT).
  1101.    But it is doubtful that the OSI VT can completely put an end to the
  1102.    ``m * n'' terminal incompatibility problem that exists in a
  1103.    heterogeneous computer network.
  1104.  
  1105. -- References --
  1106.  
  1107. "comp.protocols.iso FAQ" by Markus Kuhn (email
  1108. <mskuhn@cip.informatik.uni-erlangen.de>).
  1109.  
  1110. 5.4. MS-DOS & MS-Windows
  1111. ------------------------
  1112.  
  1113. -- Origin --
  1114.  
  1115. Microsoft.
  1116.  
  1117. MS-DOS was originally written as a ``Quick and Dirty Operating
  1118. System'' (QDOS) in about twelve weeks by a programmer named Tim
  1119. Patterson (who is said to have regretted it ever since).  Patterson's
  1120. employer sold it to Microsoft (then known mostly for its CP/M
  1121. implementation of Basic), who renamed it ``MS-DOS'' and licenced it to
  1122. IBM for their new PC.  The rest is history.
  1123.  
  1124. -- Standard Status --
  1125.  
  1126. De-facto operating system and windowing system for IBM-PCs.
  1127.  
  1128. -- Purpose --
  1129.  
  1130. MS-DOS seems to have been licenced by IBM because they had to have
  1131. something quickly.
  1132.  
  1133. Windows was created by Microsoft in response to the Apple Mac.  Apple
  1134. provided a user friendly GUI, and this enabled them to start invading
  1135. the market share of IBM and Microsoft.
  1136.  
  1137. -- Outline --
  1138.  
  1139. MS-DOS provides interrupt handling, a simple file system (the original
  1140. version lacked a directory hierarchy) and a simple command line
  1141. interpreter.  Its memory allocation system could only handle
  1142. 640Kbytes, which caused problem until add-on programs were developed
  1143. to handle extra memory.  Even today incompatibilities between
  1144. different memory models can cause problems for PC users.
  1145.  
  1146. Windows is an MS-DOS compatible operating system which provides a GUI
  1147. front end and very limited multi-tasking.  The current version is 3.1.
  1148.  
  1149. One of the major innovations of Windows (at least for the IBM-PC world)
  1150. was ``Object Linking and Embedding'' or OLE.  This allows objects from
  1151. different applications to be placed in a single document.  A diagram
  1152. and a spreadsheet can be included in a report.  The spreadsheet
  1153. figures can be linked to a bar chart in such a way that when the
  1154. spreadsheet is changed the bar chart is updated automatically.
  1155.  
  1156. At the time of writing leaks have been appearing in the trade press
  1157. concerning ``Chicago'', the code-name of Windows 4.  It appears that
  1158. Windows 4 will be an object-oriented OS, upward-compatible with
  1159. Windows 3 but otherwise completely divorced from MS-DOS.
  1160.  
  1161. Most business applications software sold today works under MS-Windows.
  1162. Customers are likely to insist that bespoke software bought from us
  1163. can interwork with their off-the-shelf packages.
  1164.  
  1165. Software developers can develop new packages which are actually a
  1166. mixture of standard third-party packages and small amounts of custom
  1167. software.  Such packages tend to be cheaper and more flexible
  1168. than software developed from scratch.
  1169.  
  1170. 5.5. Windows NT
  1171. ---------------
  1172.  
  1173. NT stands for ``New Technology''.
  1174.  
  1175. -- Origin --
  1176.  
  1177. Microsoft.
  1178.  
  1179. -- Standard Status --
  1180.  
  1181. Proprietary standard.  Microsoft hope that this will become the
  1182. de-facto standard to replace MS-Windows.  Its chief competitors are
  1183. Unix with X-Windows and OS/2 from IBM (proprietary, unlikely to have a
  1184. long-term future).
  1185.  
  1186. -- Purpose --
  1187.  
  1188. The heir apparent to the Windows crown.  Microsoft hopes to wean users
  1189. >from MS-Windows by a combination of more features, true multi-tasking
  1190. and upward compatibility.
  1191.  
  1192. -- Outline --
  1193.  
  1194. >From the user point of view, Windows NT seems to be a bigger
  1195. MS-Windows.  NT needs at least an 80486 CPU with about 16 Mbytes of
  1196. RAM and a correspondingly huge hard disk.  Microsoft expect that it
  1197. will be used for large network disk servers, while individual users
  1198. continue to run MS-Windows.  As the average PC grows in power, users
  1199. will migrate to NT.  Also Windows-NT is not tied to the 80x86
  1200. architecture.
  1201.  
  1202. By way of comparison, a Unix with X windows will run reasonably well
  1203. on an 80386 CPU with 8Mbytes of RAM.
  1204.  
  1205. 5.6. CORBA (Common Object Request Broker Architecture)
  1206. ------------------------------------------------------
  1207.  
  1208. -- Origin --
  1209.  
  1210. Object Management Group (OMG).
  1211.  
  1212. -- Standard Status --
  1213.  
  1214. Object Management Architecture Guide published.
  1215.  
  1216. -- Purpose --
  1217.  
  1218. The Object Management Group (OMG) is an international software industry
  1219. consortium with two primary aims:
  1220.  
  1221. * Promotion of the object-oriented approach to software engineering
  1222.   in general.
  1223.  
  1224. * Development of command models and a common interface for the
  1225.   development and use of large-scale distributed applications (open
  1226.   distributed processing) using object-oriented methodology.
  1227.  
  1228. -- Outline --
  1229.  
  1230. The following text is from the "comp.object FAQ" The extract was
  1231. written by Richard Soley, OMG technical director (email
  1232. <soley@omg.com>).
  1233.  
  1234.    In late 1990 the OMG published its Object Management Architecture
  1235.    (OMA) Guide document. This document outlines a single terminology for
  1236.    object-oriented languages, systems, databases and application
  1237.    frameworks; an abstract framework for object-oriented systems; a set
  1238.    of both technical and architectural goals; and an architecture
  1239.    (reference model) for distributed applications using object-oriented
  1240.    techniques.  To fill out this reference model, four areas of
  1241.    standardisation have been identified:
  1242.  
  1243.    * The Object Request Broker, or key communications element, for
  1244.       handling distribution of messages between application objects in
  1245.       a highly interoperable manner;
  1246.  
  1247.    * The Object Model, or single design-portability abstract model
  1248.       for communicating with OMG-conforming object-oriented systems;
  1249.  
  1250.    * The Object Services, which will provide the main functions
  1251.       for realising basic object functionality using the Object
  1252.       Request Broker - the logical modelling and physical storage of
  1253.       objects; and
  1254.  
  1255.    * The Common Facilities will comprise facilities which are
  1256.       useful in many application domains and which will be made
  1257.       available through OMA compliant class interfaces.
  1258.  
  1259.    The OMG adoption cycle includes Requests for Information and
  1260.    Proposals, requesting detailed technical and commercial availability
  1261.    information from OMG members about existing products to fill
  1262.    particular parts of the reference model architecture.  After passage
  1263.    by Technical and Business committees to review these responses, the
  1264.    OMG Board of Directors makes a final determination for technology adoption.
  1265.    Adopted specifications are available on a fee-free basis to members and
  1266.    non-members alike.
  1267.  
  1268.    In late 1991 OMG adopted its first interface technology, for the Object
  1269.    Request Broker portion of the reference model.  This technology, adopted
  1270.    from a joint proposal (named "CORBA") of Hewlett-Packard, NCR Corp.,
  1271.    HyperDesk Corp., Digital Equipment Corp., Sun Microsystems and Object
  1272.    Design Inc. includes both static and dynamic interfaces to an inter-
  1273.    application request handling software "bus."
  1274.  
  1275.    Unlike other organisations, the OMG itself does not and will not
  1276.    develop nor sell software of any kind.  Instead, it selects and promulgates
  1277.    software interfaces; products which offer these interfaces continue to be
  1278.    developed and offered by commercial companies.
  1279.  
  1280. Implementations of CORBA 1.1 are available from Hewlett-Packard (with
  1281. HP Distributed Smalltalk), HyperDesk (Runs on several common
  1282. architectures), IBM (System Object Model, AIX \& OS/2 only) and Sun.
  1283.  
  1284. The OMG is basically a vendor club (although it has open membership).
  1285. CORBA has not yet been recognised by ANSI, ISO or CCITT, but that is
  1286. the obvious next stage.  In the mean time, CORBA constitutes the only
  1287. open standard in the area.
  1288.  
  1289. -- References --
  1290.  
  1291. "comp.object Frequently Asked Questions" by Bob Hathaway (email
  1292. <rjh@geodesic.com>).  October 1993.  Available by FTP from the
  1293. Imperial College repository.
  1294.  
  1295. 5.7. SQL: Structured Query Language
  1296. -----------------------------------
  1297.  
  1298. -- Origin --
  1299.  
  1300. IBM.
  1301.  
  1302. -- Standard Status --
  1303.  
  1304. ISO standard 9075 released 1989 and ``updated'' in 1992.  This update
  1305. tripled the size of the standard.
  1306.  
  1307. Implementations exist for INGRES, ORACLE (and many others), but not
  1308. 100% compliant with the standard, and, due to extensions beyond the
  1309. standard, not mutually compatible.
  1310.  
  1311.  
  1312. -- Purpose --
  1313.  
  1314. To provide database-independence for users and applications.
  1315.  
  1316. -- Outline --
  1317.  
  1318. SQL is a ``language'' for communicating with databases.  A user at a
  1319. terminal can prepare an SQL script and execute it in batch mode, or a
  1320. program can generate SQL statements to speak to the database.
  1321.  
  1322. SQL provides commands for:
  1323.  
  1324. * Data insertion, modification, and deletion
  1325. * Query
  1326. * Data definition
  1327. * Access control
  1328.  
  1329. -- Limitations --
  1330.  
  1331. There are many areas not covered by SQL, including data dictionary,
  1332. forms, foreign keys, primary keys, and referential integrity.  In
  1333. addition, not all implementations are 100% compliant, and some (all?)
  1334. extend beyond the standard, so portability is limited.  Both of these
  1335. problems may reduce with time as both the standard and implementations
  1336. grow.
  1337.  
  1338.  
  1339. 6. Application Standards
  1340. ========================
  1341.  
  1342. 6.1. X.400 Message Handling System
  1343. ----------------------------------
  1344.  
  1345. -- Origin --
  1346.  
  1347. CCITT.
  1348.  
  1349. -- Standard Status --
  1350.  
  1351. X.400 standard issued November 1988.  The term ``X.400'' is often used
  1352. to indicate a collection of standards in the range X.400 -- X.420.
  1353. X.400 itself is actually just the system and service overview.
  1354.  
  1355. -- Purpose --
  1356.  
  1357. To provide a standard for handling electronic mail on a
  1358. store-and-forward basis.  The content of the email is not
  1359. interpreted or altered by the system except in certain specific
  1360. situations, for instance where character set conversion is necessary.
  1361.  
  1362. -- Outline --
  1363.  
  1364. A Message Handling System (MHS) is split up into the following
  1365. components:
  1366.  
  1367. UA: User Agent.  An application program which interacts with a human
  1368.     who is reading or sending electronic mail.
  1369.  
  1370. AU: Access Unit.  This allows indirect access to the system, for
  1371.     instance by automatically printing out messages and handing them
  1372.     over for physical delivery.
  1373.  
  1374. MTS: Message Transfer System.  The system responsible for storing and
  1375.      forwarding electronic mail.  This in turn is split up into:
  1376.  
  1377.      MTA: Message Transfer Authority.  The subsystem responsible for
  1378.           moving messages towards their destination.
  1379.  
  1380.      MS: Message Store.  The subsystem responsible for holding
  1381.          messages until they are either forwarded by an MTA or deleted
  1382.          by an AU or UA.
  1383.  
  1384. On top of this system a range of services can be built.  The X.420
  1385. standard defines the Inter-Personal Message (IPM) system.  This
  1386. provides user-to-user electronic mail.  Addressing and routing is done
  1387. by the X.500 directory services.
  1388.  
  1389. This standard is included in the UK GOSIP.  It is the most widely
  1390. accepted official standard, but it is not the most widely used.  That
  1391. is the RFC 822 Internet Text Messages standard.
  1392.  
  1393. 6.2. X.500 Directory Services
  1394. -----------------------------
  1395.  
  1396. -- Origin --
  1397.  
  1398. CCITT.
  1399.  
  1400. -- Standard Status --
  1401.  
  1402. X.500 standard issued November 1988.  As with ``X.400'', the term
  1403. ``X.500'' is often used to indicate a collection of standards in the
  1404. range X.500 - X.521.
  1405.  
  1406. -- Purpose --
  1407.  
  1408. Directory services are necessary for two reasons.
  1409.  
  1410. 1: To isolate users of the network from frequent changes to its
  1411.    structure.
  1412.  
  1413. 2: To provide a more user-friendly view of the network.
  1414.  
  1415. The standard specifies how electronic directories of people and
  1416. services should be organised.  The specification includes the ways in
  1417. which different organisations can arrange for their directories to
  1418. work together, and methods of authentication for access and
  1419. modification.
  1420.  
  1421. -- Outline --
  1422.  
  1423. A typical X.500 address will look like this:
  1424.  
  1425.    C="GB"
  1426.    O="GEC"
  1427.    OU="Marconi Research Centre"
  1428.    T="Research Scientist"
  1429.    CN="Paul Johnson"
  1430.  
  1431. The various attribute names are specified in X.520.  The list above is
  1432. only a sample.  ``C'' stands for ``country'', ``O'' for
  1433. ``organisation, ``OU'' for ``organisational unit'', ``T'' for
  1434. ``title'' and ``CN'' for ``common name''.  Note that CN="Laser
  1435. Printer" would be equally valid.  Directories cover services as well
  1436. as human beings.
  1437.  
  1438. The X.500 directory is organised as a tree with individuals and
  1439. services at the leaves.  At higher level nodes, various organisations
  1440. are given authority to manage their own local namespaces.  At the top
  1441. level are various countries, known by their two-letter ISO codes (e.g
  1442. Great Britain = GB).  Below this are organisations, organisational
  1443. units and people.  A national authority is responsible for allocating
  1444. names and aliases to organisations.  Each organisation is responsible
  1445. for the names of its organisational units, and so on.  The levels in
  1446. the tree are mapped on to the X.520 attribute names.
  1447.  
  1448. Tree-structured databases such as this suffer from efficiency
  1449. problems.  A search for a research scientist at GEC-Marconi in Great
  1450. Britain can be performed quickly because the geographical area is
  1451. known.  A search for a research scientist named Paul Johnson would
  1452. have to be sent world-wide.  To avoid this the standard allows
  1453. different hierarchies to be used in a ``Yellow Pages'' service.  For
  1454. instance a professional organisation such as the IEE could maintain an
  1455. X.500 directory of members organised by title and professional area
  1456. rather than employer.  Entries in such a directory would all be
  1457. ``aliases''; entries which actually point to real entries elsewhere.
  1458.  
  1459. X.500 is the most widely accepted official standard in this area.
  1460. However it is not the most widely used system.  See section
  1461. \ref{internet} on Internet Services for more information.
  1462.  
  1463. 6.3. FTAM (ISO 8571)
  1464. --------------------
  1465.  
  1466. -- Origin --
  1467.  
  1468. ISO/OSI.
  1469.  
  1470. -- Standard Status --
  1471.  
  1472. ISO standard 8571, BS 7090.  Published in 1989.
  1473.  
  1474. -- Purpose --
  1475.  
  1476. To provide a transparent, network-wide, file transfer and management
  1477. service.
  1478.  
  1479. -- Outline --
  1480.  
  1481. FTAM is an OSI layer 7 standard which forms part of the UK GOSIP.  It
  1482. provides network-wide file transfer and access, but does not actually
  1483. constitute a file system.  This leads to a dichotomy between files
  1484. held on the local file system (which can be accessed by other
  1485. application programs) and files available through FTAM (which have to
  1486. be transferred to the local machine before they can be accessed).  In
  1487. theory a file system such as NFS (q.v.) can make remote files as
  1488. accessible as local ones.  In practice this is only feasible for local
  1489. area networks.  For wide area networks it makes more sense to
  1490. down-load a file to the local network before working on it.  Therefore
  1491. FTAM should be used for managing files on a WAN.  NFS or an equivalent
  1492. should be used on a LAN.
  1493.  
  1494. FTAM is part of GOSIP, but it is not clear whether this must be used
  1495. for local area networks.
  1496.  
  1497. 6.4. NFS: Network File System
  1498. -----------------------------
  1499.  
  1500. -- Origin --
  1501.  
  1502. SUN Microsystems Inc.
  1503.  
  1504. -- Standard Status --
  1505.  
  1506. De-facto standard, specification and source code in the public domain.
  1507. Implementations exist for SUN, VAX/ULTRIX, VAX/VMS (server side only),
  1508. Apollo, and IBM PC (client side only)
  1509.  
  1510.  
  1511. -- Purpose --
  1512.  
  1513. To provide a transparent network-wide file system, i.e.  it provides
  1514. network-wide access to files (and directories) without the
  1515. user/program having to know where the files reside.  It should work in
  1516. mixed networks (provided that each machine supports NFS).  NFS is
  1517. designed to be portable to other machine architectures and operating
  1518. systems.  In addition, NFS aims to allow clients and servers to
  1519. recover from machine or network failures.
  1520.  
  1521.  
  1522. -- Outline --
  1523.  
  1524. NFS is implemented on top of a Remote Procedure Call (RPC)  package
  1525. to  simplify  protocol  definition  and implementation, and uses an
  1526. External Data Representation  (XDR)  to  describe  protocols  in  a
  1527. machine and system independent way.
  1528.  
  1529. To make NFS transparent to  applications,  the  generic  filesystem
  1530. operations  are separated from specific filesystem implementations.
  1531. The generic filesystem supports two kinds of operation - operations
  1532. on  the  filesystem  (using  the  Virtual  File  System,  VFS), and
  1533. operations on the files within the filesystem  (using  the  Virtual
  1534. Node, vnode).
  1535.  
  1536. NFS consists of three components:
  1537.  
  1538. 1: The NFS protocol.  This uses the SUN RPC mechanism.  The RPC
  1539.    mechanism is synchronous, so behaves exactly like local
  1540.    procedure calls, which makes it easy to use.  In addition,
  1541.    the protocol is stateless, i.e.  each procedure call contains
  1542.    all of the required information in the call parameters, so
  1543.    there is no state history to be maintained (or re-established
  1544.    after a crash).  This means that neither client nor server
  1545.    has to deal with crash recovery.  NFS is transport
  1546.    independent - it currently uses the DARPA User Datagram
  1547.    Protocol (UDP) and Internet Protocol (IP), but could switch
  1548.    to others without altering the higher level protocols.  The
  1549.    NFS Protocol and RPC utilise the SUN XDR specification.  The
  1550.    NFS Protocol supports directory and file operations including
  1551.    create and delete directory, rename, create, lookup, remove a
  1552.    file, read, write, truncate a file, read from directory,
  1553.    change file attributes, etc.
  1554.  
  1555. 2: The Server Side.  Because the NFS server is stateless, when
  1556.    servicing a request it must commit all modified data to
  1557.    stable storage {\em before} returning results.  This will
  1558.    include the data directly modified, and any consequential
  1559.    changes (e.g.  directory changes resulting from a file
  1560.    change).
  1561.  
  1562. 3: The Client Side.  For compatibility with existing UNIX
  1563.    applications, NFS uses a UNIX-style pathname.  However, the
  1564.    host-name lookup and file address binding are done once per
  1565.    filesystem via the mount command, which means that files are
  1566.    not available to the client until the mount is completed.
  1567.    The VFS and vnode interfaces hide the differences between
  1568.    file systems from the applications, making NFS transparent to
  1569.    different filesystems.
  1570.  
  1571. Note that NFS does not itself support file locking.  Instead SUN
  1572. provides a separate file and record locking mechanism based on RPC.
  1573. Because file locking is inherently stateful (vs.  stateless), there is
  1574. also a status monitor which allows the lock manager to unlock files
  1575. after a crash.
  1576.  
  1577. Of possibly greater significance is the fact that concurrent write
  1578. access is not restricted by NFS: file modifications are locked at the
  1579. inode level, which prevents two processes intermixing data from a
  1580. single write.  However, since NFS does not maintain locks between
  1581. requests, and a write may span several RPC requests, two clients can
  1582. intermix data on long writes.  This follows the Unix philosophy.
  1583.  
  1584. At present NFS is the nearest thing to an open standard for a file
  1585. system that can work transparently over a network (FTAM is not capable
  1586. of this).  It is also a de-facto standard with a large number of
  1587. installations world-wide.  As such it is probably the system of choice
  1588. for any large networked installation.
  1589.  
  1590. -- Limitations --
  1591.  
  1592. While NFS allows access to files in a  mixed  environment  this  is
  1593. only  really useful if the files themselves are ``portable''.  NFS is
  1594. therefore relevant to ASCII files, and to binary files in  standard
  1595. formats  (e.g.   XDR).   It is not relevant to task images, program
  1596. object code, or non-standard binaries.
  1597.  
  1598. This limit would not normally apply in a single-vendor network, where
  1599. we might expect all file types to be compatible.  Note also the point
  1600. above about lack of concurrent write control.
  1601.  
  1602. -- References --
  1603.  
  1604. "The SUN Network File System", Russel Sandberg, SUN, 1986.
  1605.  
  1606. 7. Data Exchange Formats
  1607. ========================
  1608.  
  1609. 7.1. Graphics Interchange Format
  1610. --------------------------------
  1611.  
  1612. -- Origin --
  1613.  
  1614. CompuServe, a commercial electronic conference service.
  1615.  
  1616. -- Standard Status --
  1617.  
  1618. Used to be the de-facto standard, but is now being replaced by JPEG.
  1619.  
  1620. -- Purpose --
  1621.  
  1622. Developed as a device-independent method of storing pictures.
  1623.  
  1624. -- Outline --
  1625.  
  1626. Pictures suitable for GIF encoding must use a palette of not more
  1627. than 256 colours.  This palette is stored with the picture.  The
  1628. picture is stored as a series of 8 bit indices into the palette,
  1629. compressed.  Apart from the palette quantisation, GIF is a non-lossy
  1630. picture compression method.  A 1024x768 pixel picture with 256 colours
  1631. takes about 660Kbytes.
  1632.  
  1633. Note that converting a GIF picture to JPEG is a bad idea: the
  1634. dithering required for palette quantisation in GIF looks like fine
  1635. detail to JPEG.
  1636.  
  1637. 7.2. JPEG
  1638. ---------
  1639.  
  1640. JPEG is pronounced ``jay-peg''.
  1641.  
  1642. -- Origin --
  1643.  
  1644. The Joint Photographic Experts Group, a sub-committee of ISO.
  1645.  
  1646. -- Standard Status --
  1647.  
  1648. Part of ISO.
  1649.  
  1650. -- Purpose --
  1651.  
  1652. A standard file format and compression algorithm for full colour
  1653. pictures.  One of the options for the compression algorithm (Q Coding)
  1654. is patented.
  1655.  
  1656. -- Outline --
  1657.  
  1658. The best brief introduction to JPEG is to be found in the
  1659. comp.compression FAQ.  The following information is quoted from the
  1660. FAQ.
  1661.  
  1662.    JPEG works on either full-colour or gray-scale images; it does not
  1663.    handle bi-level (black and white) images, at least not efficiently.  It
  1664.    doesn't handle colourmapped images either; you have to pre-expand those
  1665.    into an unmapped full-colour representation.  JPEG works best on
  1666.    ``continuous tone'' images, usually those of natural real-world
  1667.    scenes.  It does not work so well on non-realistic images, such as
  1668.    cartoons or line drawings, which have many sudden jumps in colour
  1669.    values.
  1670.  
  1671.    JPEG does not handle black-and-white (1-bit-per-pixel) images, nor
  1672.    does it handle motion picture compression.  Standards for compressing
  1673.    those types of images are being worked on by other committees, named
  1674.    JBIG and MPEG respectively.
  1675.  
  1676.    Regular JPEG is ``lossy'', meaning that the image you get out of
  1677.    decompression isn't quite identical to what you originally put in.
  1678.    The algorithm achieves much of its compression by exploiting known
  1679.    limitations of the human eye, notably the fact that small colour
  1680.    details aren't perceived as well as small details of light-and-dark.
  1681.    Thus, JPEG is intended for compressing images that will be looked at
  1682.    by humans.  If you plan to machine-analyse your images, the small
  1683.    errors introduced by JPEG may be a problem for you, even if they are
  1684.    invisible to the eye.  The JPEG standard includes a separate lossless
  1685.    mode, but it is not widely used and does not give nearly as much
  1686.    compression as the lossy mode.
  1687.  
  1688. Note that JPEG is not suitable for binary images such as documents.
  1689. JBIG should be used instead.
  1690.  
  1691. Any high-volume use of JPEG will require dedicated hardware.  Such
  1692. hardware is available, either as a chipset or as expansion boards for
  1693. IBM PCs.  See the comp.compression FAQ for a list of devices
  1694. and boards.
  1695.  
  1696. \subsubsection{References}
  1697.  
  1698. "comp.compression Frequently Asked Questions" by Jean-loup Gailly
  1699. (email <jloup@chorus.fr>).  Available from the Imperial College
  1700. repository.  October 1993.
  1701.  
  1702. Contains a good introduction to many aspects of data compression,
  1703. along with references to standard text books and current research.
  1704. The following text is taken from this reference list:
  1705.  
  1706.    "The JPEG Still Picture Compression Standard" by Gregory K. Wallace,
  1707.    Communications of the ACM, April 1991 (vol. 34 no. 4), pp. 30-44.
  1708.  
  1709.    A good technical introduction to JPEG.  Adjacent articles in that
  1710.    issue discuss MPEG motion picture compression, applications of JPEG,
  1711.    and related topics.
  1712.  
  1713.    "The Data Compression Book" by Mark Nelson.
  1714.  
  1715.    This book provides excellent introductions to many data compression
  1716.    methods including JPEG, plus sample source code in C.  The
  1717.    JPEG-related source code is far from industrial-strength, but it's a
  1718.    pretty good learning tool.
  1719.  
  1720.    "JPEG Still Image Data Compression Standard" by William
  1721.    B. Pennebaker and Joan L. Mitchell.  Published by Van Nostrand
  1722.    Reinhold, 1993, ISBN 0-442-01272-1.  650 pages, price $59.95.  This
  1723.    book includes the complete text of the ISO JPEG standards, DIS 10918-1
  1724.    and draft DIS 10918-2.  Review by Tom Lane:
  1725.  
  1726.       This is by far the most complete exposition of JPEG in existence.
  1727.       It's written by two people who know what they are talking about:
  1728.       both serve on the ISO JPEG standards committee.  If you want to
  1729.       know how JPEG works or why it works that way, this is the book to
  1730.       have.
  1731.  
  1732.    There are a number of errors in the first printing of the Pennebaker
  1733.    & Mitchell book.  An errata list is available at ftp.uu.net:
  1734.    graphics/jpeg/pm.errata.  At last report, all were fixed in the second
  1735.    printing.
  1736.  
  1737.  
  1738. 7.3. JBIG Binary Image Compression
  1739. ----------------------------------
  1740.  
  1741. -- Origin --
  1742.  
  1743. Joint Bi-level Images Group, an experts group of ISO (JTC1/SC2/WG9 and
  1744. SGVIII).
  1745.  
  1746. -- Standard Status --
  1747.  
  1748. Under development.  Parts of the proposed standard are patented.
  1749.  
  1750. -- Purpose --
  1751.  
  1752. To provide a system for compressing binary images (like faxes).  This
  1753. will replace the current group 3 and 4 fax algorithms.  The main
  1754. characteristics of the algorithm are:
  1755.  
  1756. * JBIG will be lossless: images will not be changed by the encoding
  1757.   and decoding processes.
  1758.  
  1759. * Images can be encoded and decoded sequentially: there is no need for
  1760.   either end to store the entire image.
  1761.  
  1762. JBIG works best on bi-level images (like faxes).  It also works well
  1763. on Gray-coded grey scale images up to about six per pixel.  This is
  1764. done by applying JBIG to the bit planes individually.  For more bits
  1765. per pixel, lossless JPEG usually provides better performance.  Anything
  1766. beyond 6 bits per pixel is usually noise anyway, and so should be
  1767. ignored.
  1768.  
  1769. -- Outline --
  1770.  
  1771. The following text is taken from the Usenet comp.compression
  1772. Frequently Asked Questions [\ref{comp.compression.faq.jbig}], section
  1773. 74.  This extract was written by Hank van Bekkem (email address:
  1774. <jbek@oce.nl>).
  1775.  
  1776.   JBIG parameter P specifies the number of bits per pixel in the image.
  1777.   Its allowable range is 1 through 255, but starting at P=8 or so,
  1778.   compression will be more efficient using other algorithms. On the
  1779.   other hand, medical images such as chest X-rays are often stored with
  1780.   12 bits per pixel, while no distortion is allowed, so JBIG can
  1781.   certainly be of use in this area. To limit the number of bit changes
  1782.   between adjacent decimal values (e.g. 127 and 128), it is wise to use
  1783.   Gray coding before compressing multi-level images with JBIG. JBIG
  1784.   then compresses the image on a bitplane basis, so the rest of this
  1785.   text assumes bi-level pixels.
  1786.  
  1787.   Progressive coding is a way to send an image gradually to a receiver
  1788.   instead of all at once. During sending, more detail is sent, and the
  1789.   receiver can build the image from low to high detail. JBIG uses
  1790.   discrete steps of detail by successively doubling the resolution. The
  1791.   sender computes a number of resolution layers D, and transmits these
  1792.   starting at the lowest resolution Dl. Resolution reduction uses
  1793.   pixels in the high resolution layer and some already computed low
  1794.   resolution pixels as an index into a lookup table. The contents of
  1795.   this table can be specified by the user.
  1796.  
  1797.  
  1798. This is the obvious standard for any kind of electronic document
  1799. storage and transmission system.  The patented algorithm at its heart
  1800. is a cause for some worry.  Any application of this standard would
  1801. require a patent license from IBM.
  1802.  
  1803. -- References --
  1804.  
  1805. "comp.compression Frequently Asked Questions" by Jean-loup Gailly
  1806. (email {\tt <jloup@chorus.fr>}).  Available from the Imperial College
  1807. repository.  October 1993.
  1808.  
  1809. "Progressive Bi-level Image Compression, Revision 4.1", ISO/IEC
  1810. JTC1/SC2/WG9, CD 11544, September 16, 1991
  1811.  
  1812. "An overview of the basic principles of the Q-coder adaptive binary
  1813. arithmetic coder", W.B. Pennebaker, J.L. Mitchell, G.G.  Langdon,
  1814. R.B. Arps, IBM Journal of research and development, Vol.32, No.6,
  1815. November 1988, pp. 771-726 (This is the patented algorithm.  See also
  1816. the other articles about the Q-coder in this issue)
  1817.  
  1818. 7.4. MPEG
  1819. ---------
  1820.  
  1821. -- Origin --
  1822.  
  1823. The Moving Pictures Experts Group, a part of ISO.
  1824.  
  1825. -- Standard Status --
  1826.  
  1827. In January 1992 a Committee Draft of MPEG phase I was released
  1828. (colloquially called MPEG-I).  Its exact name is ISO CD 11172.
  1829. MPEG-II is presently being developed.  It will probably be released
  1830. some time in 1994.
  1831.  
  1832. MPEG-I chips are available from a number of suppliers.  Some run at
  1833. up to 4Mbits/sec data rates, allowing higher quality video than pure
  1834. MPEG-I.
  1835.  
  1836. -- Purpose --
  1837.  
  1838. To define a standard for compressed digital video and audio.
  1839.  
  1840. -- Outline --
  1841.  
  1842. MPEG I defines a system requiring about 1.5Mbits/sec for video with a
  1843. mono sound track.  Frame size and rates differ for American and
  1844. European standards (to fit in with the American NTSC and European PAL
  1845. and SECAM analogue video standards).  The European standard transmits
  1846. 288 lines of 352 pixels at 50 fields per second.  The fields are then
  1847. interlaced to give 25 frames per second.
  1848.  
  1849. 1.5Mbits/sec was chosen as a target figure for MPEG-I because that is
  1850. the data rate provided by CD and DAT.
  1851.  
  1852. MPEG-II will transmit ``entertainment'' quality video and sound at
  1853. about 4Mbits/sec.
  1854.  
  1855. An introduction to MPEG, along with an regularly updated list
  1856. of chips and boards, can be found in the Usenet comp.compression
  1857. Frequently Answered Questions.
  1858.  
  1859. MPEG-I will be the standard for medium-quality video in such
  1860. applications as CD-Interactive and video-phones.  Chips are available
  1861. which work at higher data rates than specified in MPEG-I, although
  1862. these will not comply with MPEG-II.  These chips are aimed at the
  1863. cable TV and video-conferencing markets.
  1864.  
  1865. -- References--
  1866.  
  1867. comp.compression Frequently Asked Questions by Jean-loup Gailly (email
  1868. <jloup@chorus.fr>).  Available from the Imperial College repository.
  1869. October 1993.
  1870.  
  1871. Contains a brief description of the MPEG algorithm and a list of
  1872. devices which implement it.
  1873.  
  1874. 7.5. u-Law and A-Law (G.711)
  1875. ----------------------------
  1876.  
  1877. The "u" in "u-Law" is actually the Greek letter "mu".
  1878.  
  1879. -- Origin --
  1880.  
  1881. CCITT.
  1882.  
  1883. -- Standard Status --
  1884.  
  1885. Standard G.711.  Fairly widely used.  u-Law is used in North
  1886. America and Japan, and is often implemented on Unix workstations.
  1887. A-Law is used in the rest of the world, including international
  1888. telephone routes.
  1889.  
  1890. -- Purpose --
  1891.  
  1892. To provide a simple logarithmic compression scheme for audio data.
  1893.  
  1894. -- Outline --
  1895.  
  1896. G.711 is a lossy compression scheme which compacts 16 bit sound
  1897. samples down to 12 bits, or 12 bit samples down to 8 bits.  Like all
  1898. lossy compression schemes it is designed around imperfections in human
  1899. perception.  A loud sound will ``drown out'' a quiet one.  So
  1900. compression schemes can afford to add random noise when the signal is
  1901. loud, provided that they keep the random noise down when the signal is
  1902. quiet.
  1903.  
  1904. A log-law compression scheme quantises the input data on a logarithmic
  1905. scale instead of a linear one.  This provides precision (and hence low
  1906. noise) at low values, but the quantisation errors (and hence the
  1907. random noise) increase at higher levels.  This random noise is drowned
  1908. out by the signal.
  1909.  
  1910. This is probably the simplest compression scheme for sound.  It also
  1911. provides reasonable quality and a reasonable amount (25-35%) of
  1912. compression.
  1913.  
  1914. -- References --
  1915.  
  1916. "FAQ: Audio File Formats" by Guido van Rossum (email <guido@cwi.nl>).
  1917.  
  1918. 8. Document Formats
  1919. ===================
  1920.  
  1921. 8.1. SGML: Standard Generalised Markup Language
  1922. -----------------------------------------------
  1923.  
  1924. -- Origin --
  1925.  
  1926. Publishing (Association of American Publishers, AAP ?).
  1927.  
  1928.  
  1929. -- Standard Status --
  1930.  
  1931. ISO standard 8879.
  1932.  
  1933.  
  1934. -- Purpose --
  1935.  
  1936. To define a standard way of describing the purpose of individual
  1937. pieces of data in a text document, in order that the meaning and
  1938. structure of the text can be extracted by automatic programs.  For
  1939. example, titles, paragraph headings, notes etc.  should be identified
  1940. as such.  Data marked up with SGML can therefore be regarded as a very
  1941. simple sort of database rather than as a simple sequential text file,
  1942. which adds considerably to its value.  In particular, it becomes
  1943. possible to port the data between different publishing systems etc
  1944. without loss of structure.
  1945.  
  1946.  
  1947. -- Outline --
  1948.  
  1949. Historically, document data contained procedural markup, which conveys
  1950. how the data will appear in printed form.  Commands such as indenting,
  1951. listing, titling, font selection and so on fall into this class, in
  1952. products such as RUNOFF.  Apart from making many global changes
  1953. difficult, this ties the data to the particular interpreter because
  1954. the commands are not universal.
  1955.  
  1956. SGML is different - it is a descriptive markup language, which defines
  1957. the data in prescribed categories.  The decision to print second-level
  1958. paragraph headings in double-height underlined Gill Sans is not
  1959. embedded in the data, but is defined by a separate mapping (in a post
  1960. processor: the DSSSL, or Document Style Semantics and Specification
  1961. Language, is currently being defined as a companion standard to SGML
  1962. to standardise the workings of such post processors).  Thus the
  1963. content of the data and the form of its presentation are separated,
  1964. which makes the data portable between different systems.
  1965.  
  1966. In addition, the user can define different document types, with
  1967. different allowable elements and structures, using DTDs - Document
  1968. Type Definitions.  Thus memos, letters, instruction sheets, amendment
  1969. sheets etc can be defined in terms of content and organisation, and
  1970. can be produced to any standard output format simply by modifying the
  1971. post-processing instructions.  It is, of course, possible for other
  1972. programs to interrogate such data, since the combination of DTD and
  1973. document data is self-descriptive.
  1974.  
  1975. Non-character based data can be implicitly embedded in an SGML
  1976. document simply by storing it in a separate file and embedding a
  1977. reference to it in the text file.
  1978.  
  1979. Note that the Office Document Architecture (ODA), ISO standard 8613,
  1980. is to some extent competitive with SGML, though it focusses more on
  1981. interchange of formatted documents.  ODA is specified as part of GOSIP.
  1982.  
  1983. 9. Internet Services
  1984. ====================
  1985.  
  1986. 9.1. TCP/IP
  1987. -----------
  1988.  
  1989. -- Origin --
  1990.  
  1991. This is actually two different standards.  RFC 791 defines the
  1992. Internet Protocol (IP).  RFC 793 defines the Transmission Control
  1993. Protocol (TCP).  There is also a User Datagram Protocol (UDP) defined
  1994. in RFC 792 for packets where the delivery and ordering of the packets
  1995. is handled by the client software.  This is used by the Network File
  1996. System and the Sun Remote Procedure Call (RPC) library.
  1997.  
  1998. IP as defined in RFC 791 has been ammended by RFCs 950 (Subnet
  1999. extension), 919 (Broadcast Datagrams) and 792 (Broadcast Datagrams
  2000. with Subnets).  There are also a number of mappings between IP and
  2001. various other network protocols, including Ethernet and X.25.
  2002.  
  2003. -- Standard Status --
  2004.  
  2005. IP and its ammendations are all Required Protocols.  TCP is a
  2006. Recommended Protocol.  In practice it would be a very unusual Internet
  2007. node that did not support TCP.
  2008.  
  2009. The mappings from IP to other network protocols are Elective (``if you
  2010. are going to do something like this, you should do exactly this'').
  2011.  
  2012. -- Outline --
  2013.  
  2014. IP provides a basic packet switching protocol.  Packets are not
  2015. acknowledged, and may be delivered out of order.  A checksum is
  2016. included with each packet, but there is no error correction facility.
  2017.  
  2018. TCP is intended to be a highly reliable host-to-host protocol between
  2019. hosts in packet-switched networks.  It is built on top of IP and
  2020. provides a connection-oriented end-to-end link between pairs of
  2021. processes running on different host machines.
  2022.  
  2023. The protocol includes methods for connection between numbered
  2024. ``ports'' on the two hosts, flow control, automatic retransmission of
  2025. lost data, and the transmission of precedence and security
  2026. information.  The connection between a port number and an application
  2027. process is handled by the operating system on the host machine.
  2028.  
  2029. This is the de-facto world standard upon which higher-level services
  2030. are built.  Any system which needs to communicate with other systems
  2031. accross a WAN should support this.  Numerous third-party
  2032. implementations are available, including packet switches and routers.
  2033.  
  2034. 9.2. ARPA Internet Text Messages (RFC 822)
  2035. ------------------------------------------
  2036.  
  2037. -- Origin --
  2038.  
  2039. RFC 724: "Proposed official standard for the format of ARPA
  2040. Network messages" was written by D. Crocker, K.T. Pogran, J. Vittal
  2041. and D.A. Henderson and released on 12 May 1977.  A modified form was
  2042. adopted as a standard (RFC 733, 21st November 1977).  D. Crocker wrote
  2043. a revised version (RFC 822, 13th August 1982) which has now been
  2044. adopted as the standard.
  2045.  
  2046. -- Standard Status --
  2047.  
  2048. Recommended: all Internet sites should support this.
  2049.  
  2050. -- Purpose --
  2051.  
  2052. To provide a minimum standard for electronic mail with a framework for
  2053. future expansion.
  2054.  
  2055. -- Outline --
  2056.  
  2057. RFC 822 is designed to require a little and permit a lot.  A message
  2058. is divided into the ``header'' (a sequence of fields in a format which
  2059. can be parsed by the machine) and a ``body'' (the text of the
  2060. message).  RFC 822 describes a syntax for header fields and lists a
  2061. set of header fields which must be included.  Other headers may be
  2062. added by various applications.  These are permitted by the standard,
  2063. but apart from the basic syntax of header fields RFC 822 does not
  2064. specify anything about them.  Examples of such headers include
  2065. ``X-Face'' (a compressed image of the sender), ``X-Mailer'' (the name
  2066. of the application program used to compose the message) and
  2067. ``X-Automatic-Reply'' (indicates that the message was generated by
  2068. some kind of automatic process).
  2069.  
  2070. Internet email is increasingly being used as a vehicle for other
  2071. services, including file transfer, remote job submission, electronic
  2072. conferencing and software distribution.  The general idea is to
  2073. package some kind of executable script in an email message and send it
  2074. to an address on the remote machine.  Mail to this address is
  2075. delivered to some kind of automatic server program which performs the
  2076. appropriate function, packages the results into another message, and
  2077. mails them back.
  2078.  
  2079. Internet electronic mail addresses are of the form:
  2080.  
  2081.    alias@site.domain
  2082.  
  2083. The ``alias'' part is the name of the recipient.  It is largely up to
  2084. the destination machine to resolve this.  Most machines allow users to
  2085. be addressed by a range of aliases, usually including one of the form
  2086. ``Fore-name.Surname''.
  2087.  
  2088. The ``site'' part is usually the name of the organisation where the
  2089. recipient has an account.  In some cases it may also be divided by
  2090. periods.
  2091.  
  2092. The ``domain'' part allows hierarchical subdivision of the ``site''
  2093. namespace.  Common domains include:
  2094.  
  2095. +-------+----------------------------+
  2096. | com   | commercial                 |
  2097. | edu   | US academic                |
  2098. | gov   | US government              |
  2099. | mil   | US military                |
  2100. | org   | US non-profit organisation |
  2101. | co.uk | UK commercial              |
  2102. | ac.uk | UK academic                |
  2103. +-------+----------------------------+
  2104.  
  2105. USA sites do not usually append a national domain name, reflecting the
  2106. American origins of the Internet.  Other countries have their own
  2107. domain names, usually based on the ISO two-letter country code (the UK
  2108. is an exception to this).
  2109.  
  2110. The UK Joint Networking Team is responsible for JANET.  They specify a
  2111. similar email standard to the IAB.  The most noticeable difference is
  2112. that email addresses to the right of the ``@'' sign are reversed, so
  2113. that in the UK {\tt paj@gec-mrc.co.uk} becomes {\tt
  2114. paj@uk.co.gec-mrc}.  This occasionally causes problems.
  2115.  
  2116. UK Government departments and commercial organisations which do most of
  2117. their business with the government will want X.400 mail.  The rest of
  2118. the world will want RFC 822 mail.  A number of organisations will want
  2119. both.  RFC 1148 proposes a mapping between the two standards.
  2120.  
  2121. 9.3. X.400 - Internet Email Mapping (RFC 1148)
  2122. ----------------------------------------------
  2123.  
  2124. -- Origin --
  2125.  
  2126. RFC 987: "Mapping between X.400 and RFC 822" by S.E. Kille was
  2127. released on 1st June 1986.  Updated by RFC 1026 (1st Sept 1987) and
  2128. RFC 1138 (1st December 1989).  The latest version is RFC 1148:
  2129. "Mapping between X.400(1988) / ISO 10021 and RFC 822" (1st March 1990)
  2130. and contains minor clarifications to RFC 1138.
  2131.  
  2132. The work which led to RFC 1138 was partly sponsored by the Joint
  2133. Networking Team.
  2134.  
  2135. -- Standard Status --
  2136.  
  2137. Listed as IAB Elective standard.  The IAB defines an ``Elective''
  2138. standard as ``If you are going to do something like this then you
  2139. should do exactly this.''
  2140.  
  2141. -- Purpose --
  2142.  
  2143. To define a mapping between the X.400 and RFC 822 electronic mail
  2144. standards.  The design goals were:
  2145.  
  2146.  
  2147. 1: The specification should be pragmatic.  There should not be a
  2148.    requirement for complex mappings for ``Academic'' reasons.  Complex
  2149.    mappings should not be required to support trivial additional
  2150.    functionality.
  2151.  
  2152. 2: Subject to (1), functionality across a gateway should be as high as
  2153.    possible.
  2154.  
  2155. 3: It is always a bad idea to lose information as a result of any
  2156.    transformation.  Hence, it is a bad idea for a gateway to discard
  2157.    information in the objects it processes.  This includes requested
  2158.    services which cannot be fully mapped.
  2159.  
  2160. 4: All mail gateways actually operate at exactly one level above the
  2161.    layer on which they conceptually operate.  This implies that the
  2162.    gateway must not only be cognisant of the semantics of objects at
  2163.    the gateway level, but also be cognisant of higher level semantics.
  2164.    If meaningful transformation of the objects that the gateway
  2165.    operates on is to occur, then the gateway needs to understand more
  2166.    than the objects themselves.
  2167.  
  2168. 5: The specification should be reversible.  That is, a double
  2169.    transformation should bring you back to where you started.
  2170.  
  2171. -- Outline --
  2172.  
  2173. RFC 1148 defines a ``gateway''.  In electronic mail terminology this
  2174. is a component that performs protocol mappings.  Unfortunately RFC 822
  2175. and X.400 do not map on to each other well.
  2176.  
  2177. Services in X.400 which are not defined in RFC 822 are mapped on to
  2178. extension headers to avoid information loss, but there is no guarantee
  2179. that the RFC mailers will comply with these.  For instance X.400 has
  2180. an service to set an expiry date on messages.  This is mapped on to a
  2181. new header (``Expiry-Date:'') which RFC 822 systems will ignore unless
  2182. specially programmed to process it.  In general the only RFC 822
  2183. mailer likely to recognise these fields is another RFC 822 - X.400
  2184. mail gateway.
  2185.  
  2186. RFC 822 headers are either mapped onto standard X.400 services or
  2187. jammed into an extension service ``RFC 822 Header Field''.
  2188.  
  2189. The biggest problem in the mapping is addresses.  RFC 822 addresses
  2190. are of the form "user@site.domain".  X.400 addresses are a sequence of
  2191. symbol-value pairs (see the section on X.500 for more information).
  2192. To solve this problems RFC 1148 defines the following:
  2193.  
  2194. * A mapping between the ``user'' part of the RFC 822 address and the
  2195.   ``PersonalName'' attributes of the X.400 address.
  2196.  
  2197. * A system of ``associations'' between the ``site'' and ``domain''
  2198.   parts of RFC 822 and various other attributes.
  2199.  
  2200. The imperfection of the RFC 822 - X.400 mapping is a regular
  2201. annoyance for those who must transmit their email through such
  2202. gateways.  This situation is unlikely to improve.
  2203.  
  2204. 9.4. Distributed Electronic Conferencing (RFC 1036)
  2205.  
  2206. -- Origin --
  2207.  
  2208. RFC 850 by M.R. Horton released on 1st June 1983.  Obsoleted by RFC
  2209. 1036.
  2210.  
  2211. -- Standard Status --
  2212.  
  2213. RFC 1036: "Standard for interchange of USENET messages" by
  2214. M.R. Horton and R. Adams.  Released 1st December 1987.
  2215.  
  2216. This is not recognised as a standard by the Internet Activities Board.
  2217. Despite this it is the de-facto world standard for electronic message
  2218. broadcasting (as opposed to the point-to-point electronic mail
  2219. standards of X.400 and RFC 822).
  2220.  
  2221. -- Purpose --
  2222.  
  2223. To define a standard header format for broadcast messages on
  2224. electronic conferences such as ``USENET''.
  2225.  
  2226. -- Outline --
  2227.  
  2228. RFC 1036 extends the RFC 822 electronic mail standard by adding a
  2229. number of extra fields.  Any message conforming to RFC 1036 also
  2230. conforms to RFC 822.
  2231.  
  2232. USENET is a world-wide distributed electronic conference system.  It
  2233. is divided into a hierarchy of ``newsgroups'', each one of which has a
  2234. particular topic.
  2235.  
  2236. The USENET distribution mechanism uses a tree structure.  Each node in
  2237. the network is connected by some transport mechanism to a small number
  2238. of other neighbouring nodes.  When a node receives a message from one
  2239. of its neighbours, it stores that message on disk and forwards a copy
  2240. to all its other neighbours, who in turn forward it on to their
  2241. neighbours.  In this way any message ``posted'' to a USENET group will
  2242. spread through the network.
  2243.  
  2244. Although the Usenet message format is specified in an Internet RFC,
  2245. Usenet distribution is not tied to the Internet.  Usenet articles can
  2246. be transmitted by the same means as any other data, including packet
  2247. switching networks, high speed modems, and a floppy disk carried from
  2248. one site to another.
  2249.  
  2250. There is no equivalent to RFC 1036 in the X.400 world, but something
  2251. could certainly be defined if a project required it.  This could then
  2252. be submitted to CCITT as the basis for a standard.  However it would
  2253. be difficult to avoid the problem of mapping between the two systems
  2254. that bedevils X.400 - RFC 822 gateways.
  2255.  
  2256.  
  2257.  
  2258. -- 
  2259. Paul Johnson (paj@gec-mrc.co.uk).        | Tel: +44 245 473331 ext 3245
  2260. --------------------------------------------+----------------------------------
  2261. You are lost in a twisty maze of little     | GEC-Marconi Research is not
  2262. standards, all different.                   | responsible for my opinions
  2263.  
  2264.